import { NLPrimitive } from './nlstructures';

const Commands: NLPrimitive[] = [
  {
    name: 'SHOW',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['wildcard'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'UPDATE-PLOTS',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'CLEAR-GLOBALS',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'O---',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'DISPLAY',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'ASK',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [
        { types: ['agent', 'agentset'], isRepeatable: false },
        'commandblock',
      ],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: '?',
      introducesContext: 'true',
      canBeConcise: true,
    },
  },
  {
    name: 'PLOT',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['number'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'CREATE-LINKS-FROM',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [
        'turtle agentset',
        { type: 'commandblock', isRepeatable: false, isOptional: true },
      ],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '-T--',
      blockAgentClassString: '---L',
      introducesContext: 'true',
      canBeConcise: true,
    },
  },
  {
    name: 'CAREFULLY',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['commandblock', 'commandblock'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'true',
      canBeConcise: true,
    },
  },
  {
    name: 'HUBNET-BROADCAST',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['string', 'wildcard'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'FORWARD',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['number'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '-T--',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'PLOT-PEN-RESET',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: '__STDOUT',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['wildcard'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: '__LINKCODE',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '---L',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: false,
    },
  },
  {
    name: 'SET-PLOT-X-RANGE',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['number', 'number'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'CREATE-TEMPORARY-PLOT-PEN',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['string'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'HUBNET-SEND',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [
        { types: ['string', 'list'], isRepeatable: false },
        'string',
        'wildcard',
      ],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'HUBNET-BROADCAST-CLEAR-OUTPUT',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'OUTPUT-PRINT',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['wildcard'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'HUBNET-SEND-FOLLOW',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['string', 'agent', 'number'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'RP',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'CRO',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [
        'number',
        { type: 'commandblock', isRepeatable: false, isOptional: true },
      ],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'O---',
      blockAgentClassString: '-T--',
      introducesContext: 'true',
      canBeConcise: true,
    },
  },
  {
    name: 'FILE-WRITE',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [
        {
          types: ['number', 'boolean', 'string', 'list', 'nobody'],
          isRepeatable: false,
        },
      ],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'HT',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '-T--',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'CT',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'O---',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'SET-PLOT-PEN-COLOR',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [{ types: ['number', 'list'], isRepeatable: false }],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: '__PATCHCODE',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '--P-',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: false,
    },
  },
  {
    name: 'ERROR',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['wildcard'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'OUTPUT-SHOW',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['wildcard'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'RESET-PERSPECTIVE',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: '__PWD',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'O---',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'IF',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['boolean', 'commandblock'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'UPHILL',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['symbol'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '-T--',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'PLOT-PEN-DOWN',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'SET',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['wildcard', 'wildcard'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'SET-CURRENT-PLOT-PEN',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['string'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'DOWNHILL',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['symbol'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '-T--',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'SET-PLOT-Y-RANGE',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['number', 'number'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'STOP',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'SET-CURRENT-DIRECTORY',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['string'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: '__DONE',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: false,
    },
  },
  {
    name: 'RT',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['number'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '-T--',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'IMPORT-PCOLORS',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['string'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'O---',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'IMPORT-PCOLORS-RGB',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['string'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'O---',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: '__TURTLECODE',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '-T--',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: false,
    },
  },
  {
    name: 'CREATE-LINK-TO',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [
        'turtle',
        { type: 'commandblock', isRepeatable: false, isOptional: true },
      ],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '-T--',
      blockAgentClassString: '---L',
      introducesContext: 'true',
      canBeConcise: true,
    },
  },
  {
    name: 'DIFFUSE4',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['symbol', 'number'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'O---',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'SET-DEFAULT-SHAPE',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [
        { types: ['turtle agentset', 'linkset'], isRepeatable: false },
        'string',
      ],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'O---',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'BK',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['number'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '-T--',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'CLEAR-PATCHES',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'O---',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'TIE',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '---L',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'FILE-OPEN',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['string'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'SHOW-LINK',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '---L',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: '__EXPERIMENTSTEPEND',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'O---',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'RESET-TIMER',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: '__APPLY',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['command', 'list'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'SETXY',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['number', 'number'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '-T--',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'JUMP',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['number'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '-T--',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'HUBNET-BROADCAST-MESSAGE',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['wildcard'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'RIDE',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['turtle'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'O---',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'FILE-CLOSE-ALL',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'HUBNET-SEND-MESSAGE',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [{ types: ['string', 'list'], isRepeatable: false }, 'wildcard'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'DOWNHILL4',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['symbol'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '-T--',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: '__STDERR',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['wildcard'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'HUBNET-KICK-CLIENT',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['string'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: '__BENCH',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['number', 'number'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'O---',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'PEN-UP',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '-T--',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'BACK',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['number'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '-T--',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'EXPORT-INTERFACE',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['string'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'SET-PLOT-PEN-INTERVAL',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['number'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'CREATE-TURTLES',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [
        'number',
        { type: 'commandblock', isRepeatable: false, isOptional: true },
      ],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'O---',
      blockAgentClassString: '-T--',
      introducesContext: 'true',
      canBeConcise: true,
    },
  },
  {
    name: 'REPEAT',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['number', 'commandblock'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: '__PLOT-PEN-HIDE',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'WAIT',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['number'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'FOLLOW-ME',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '-T--',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'RIDE-ME',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '-T--',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: '__PLOT-PEN-SHOW',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: '__SET-LINE-THICKNESS',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['number'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '-T--',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'FILE-TYPE',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['wildcard'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'LT',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['number'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '-T--',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: '__RELOAD-EXTENSIONS',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: '__FOREVERBUTTONEND',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: false,
    },
  },
  {
    name: '__IGNORE',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['wildcard'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'IMPORT-WORLD',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['string'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'O---',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'PLOTXY',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['number', 'number'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'SHOW-TURTLE',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '-T--',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'AUTO-PLOT-OFF',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'CA',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'O---',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'PRINT',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['wildcard'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'CREATE-ORDERED-TURTLES',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [
        'number',
        { type: 'commandblock', isRepeatable: false, isOptional: true },
      ],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'O---',
      blockAgentClassString: '-T--',
      introducesContext: 'true',
      canBeConcise: true,
    },
  },
  {
    name: 'LEFT',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['number'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '-T--',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'ST',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '-T--',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'PU',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '-T--',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'LET',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['wildcard', 'wildcard'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'RANDOM-SEED',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['number'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'WATCH-ME',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '-TPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'HUBNET-CLEAR-OVERRIDES',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['string'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'CLEAR-LINKS',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'O---',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'HUBNET-SEND-OVERRIDE',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [
        'string',
        { types: ['agent', 'agentset'], isRepeatable: false },
        'string',
        'reporterblock',
      ],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: '?',
      introducesContext: 'true',
      canBeConcise: true,
    },
  },
  {
    name: 'LAYOUT-TUTTE',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['turtle agentset', 'linkset', 'number'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'TICK-ADVANCE',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['number'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'O---',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'HUBNET-SEND-WATCH',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['string', 'agent'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'CLEAR-OUTPUT',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'HUBNET-SEND-CLEAR-OUTPUT',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [{ types: ['string', 'list'], isRepeatable: false }],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'CLEAR-ALL',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'O---',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'HUBNET-RESET',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'O---',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'EXPORT-PLOT',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['string', 'string'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'RESIZE-WORLD',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['number', 'number', 'number', 'number'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'O---',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'CLEAR-PLOT',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'HUBNET-FETCH-MESSAGE',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'DIFFUSE',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['symbol', 'number'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'O---',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'WHILE',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['booleanblock', 'commandblock'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'USER-MESSAGE',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['wildcard'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'FD',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['number'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '-T--',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'LOOP',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['commandblock'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: '__EXPORT-DRAWING',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['string'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'TICK',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'O---',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: '__LET',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['wildcard', 'wildcard'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'HUBNET-RESET-PERSPECTIVE',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['string'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'EXPORT-WORLD',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['string'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'RESET-TICKS',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'O---',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'NO-DISPLAY',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'BEEP',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'STOP-INSPECTING',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['agent'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'FOLLOW',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['turtle'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'O---',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'PEN-ERASE',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '-T--',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'OUTPUT-TYPE',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['wildcard'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'SET-HISTOGRAM-NUM-BARS',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['number'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'TYPE',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['wildcard'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: '__MKDIR',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['string'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'SET-PATCH-SIZE',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['number'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'O---',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'FILE-PRINT',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['wildcard'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'CREATE-LINK-WITH',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [
        'turtle',
        { type: 'commandblock', isRepeatable: false, isOptional: true },
      ],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '-T--',
      blockAgentClassString: '---L',
      introducesContext: 'true',
      canBeConcise: true,
    },
  },
  {
    name: 'HIDE-TURTLE',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '-T--',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'INSPECT',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['agent'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'EVERY',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['number', 'commandblock'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'OUTPUT-WRITE',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [
        {
          types: ['number', 'boolean', 'string', 'list', 'nobody'],
          isRepeatable: false,
        },
      ],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'CP',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'O---',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'RIGHT',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['number'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '-T--',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'CLEAR-DRAWING',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'O---',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'RUN',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [
        { types: ['string', 'command'], isRepeatable: false },
        { type: 'wildcard', isRepeatable: true, isOptional: false },
      ],
      ret: 'unit',
      defaultOption: 1,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'PLOT-PEN-UP',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'REPORT',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['wildcard'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'CLEAR-ALL-PLOTS',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'FILE-CLOSE',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'CREATE-LINKS-WITH',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [
        'turtle agentset',
        { type: 'commandblock', isRepeatable: false, isOptional: true },
      ],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '-T--',
      blockAgentClassString: '---L',
      introducesContext: 'true',
      canBeConcise: true,
    },
  },
  {
    name: 'AUTO-PLOT-ON',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'PENDOWN',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '-T--',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'HUBNET-KICK-ALL-CLIENTS',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'WITHOUT-INTERRUPTION',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['commandblock'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'true',
      canBeConcise: true,
    },
  },
  {
    name: 'IMPORT-DRAWING',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['string'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'O---',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'HOME',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '-T--',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: '__OBSERVERCODE',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'O---',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: false,
    },
  },
  {
    name: 'LAYOUT-RADIAL',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['turtle agentset', 'linkset', 'turtle'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'PENUP',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '-T--',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'WRITE',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [
        {
          types: ['number', 'boolean', 'string', 'list', 'nobody'],
          isRepeatable: false,
        },
      ],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'FACE',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [{ types: ['turtle', 'patch'], isRepeatable: false }],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '-T--',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'IFELSE',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [
        'boolean',
        { types: ['boolean', 'commandblock'], isRepeatable: true },
        'commandblock',
      ],
      ret: 'unit',
      defaultOption: 3,
      minimumOption: 2,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'PD',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '-T--',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'FILE-DELETE',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['string'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'CREATE-LINK-FROM',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [
        'turtle',
        { type: 'commandblock', isRepeatable: false, isOptional: true },
      ],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '-T--',
      blockAgentClassString: '---L',
      introducesContext: 'true',
      canBeConcise: true,
    },
  },
  {
    name: 'WATCH',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['agent'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'O---',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'LAYOUT-CIRCLE',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [
        { types: ['list', 'turtle agentset'], isRepeatable: false },
        'number',
      ],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'ASK-CONCURRENT',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['agentset', 'commandblock'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: '?',
      introducesContext: 'true',
      canBeConcise: true,
    },
  },
  {
    name: 'HIDE-LINK',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '---L',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'CREATE-LINKS-TO',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [
        'turtle agentset',
        { type: 'commandblock', isRepeatable: false, isOptional: true },
      ],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '-T--',
      blockAgentClassString: '---L',
      introducesContext: 'true',
      canBeConcise: true,
    },
  },
  {
    name: 'SETUP-PLOTS',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'FACEXY',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['number', 'number'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '-T--',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'STOP-INSPECTING-DEAD-AGENTS',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'CLEAR-TURTLES',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'O---',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: '__THUNK-DID-FINISH',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'HISTOGRAM',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['list'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'STAMP-ERASE',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '-T-L',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'LAYOUT-SPRING',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['turtle agentset', 'linkset', 'number', 'number', 'number'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'STAMP',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '-T-L',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'FILE-FLUSH',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'CRT',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [
        'number',
        { type: 'commandblock', isRepeatable: false, isOptional: true },
      ],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'O---',
      blockAgentClassString: '-T--',
      introducesContext: 'true',
      canBeConcise: true,
    },
  },
  {
    name: 'DIE',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '-T-L',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'FOREACH',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [
        { type: 'list', isRepeatable: true, isOptional: false },
        'command',
      ],
      ret: 'unit',
      defaultOption: 2,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'WITH-LOCAL-RANDOMNESS',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['commandblock'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'true',
      canBeConcise: true,
    },
  },
  {
    name: 'SET-CURRENT-PLOT',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['string'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'PE',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '-T--',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'EXPORT-VIEW',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['string'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'CD',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'O---',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'MOVE-TO',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [{ types: ['turtle', 'patch'], isRepeatable: false }],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '-T--',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'IF-ELSE',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [
        'boolean',
        { types: ['boolean', 'commandblock'], isRepeatable: true },
        'commandblock',
      ],
      ret: 'unit',
      defaultOption: 3,
      minimumOption: 2,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'SET-PLOT-PEN-MODE',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['number'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'UPHILL4',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['symbol'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '-T--',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: '__CHANGE-TOPOLOGY',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['boolean', 'boolean'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'PEN-DOWN',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '-T--',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'CLEAR-TICKS',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'O---',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'FILE-SHOW',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['wildcard'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'UNTIE',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '---L',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'EXPORT-ALL-PLOTS',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['string'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'HUBNET-CLEAR-OVERRIDE',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [
        'string',
        { types: ['agent', 'agentset'], isRepeatable: false },
        'string',
      ],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: '?',
      introducesContext: 'true',
      canBeConcise: true,
    },
  },
  {
    name: 'SPROUT',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [
        'number',
        { type: 'commandblock', isRepeatable: false, isOptional: true },
      ],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '--P-',
      blockAgentClassString: '-T--',
      introducesContext: 'true',
      canBeConcise: true,
    },
  },
  {
    name: 'EXPORT-OUTPUT',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: ['string'],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: 'OTPL',
      blockAgentClassString: 'null',
      introducesContext: 'false',
      canBeConcise: true,
    },
  },
  {
    name: 'HATCH',
    syntax: {
      precedence: 0,
      left: 'unit',
      right: [
        'number',
        { type: 'commandblock', isRepeatable: false, isOptional: true },
      ],
      ret: 'unit',
      defaultOption: null,
      minimumOption: null,
      isRightAssociative: false,
      agentClassString: '-T--',
      blockAgentClassString: '-T--',
      introducesContext: 'true',
      canBeConcise: true,
    },
  },
];

export { Commands };
